#ifndef __SLIST_H__
#define __SLIST_H__

// 回调函数类型
typedef int(*cb1_t)(void *);

// 键盘输入函数
#define my_scanf(op, format, ...) do{   \
    int ret = 0;                        \
    ret = scanf(format, __VA_ARGS__);   \
    while ('\n' != getchar())           \
        /*do nothing*/;                 \
    if (ret < 0)                        \
        goto op;                        \
} while (0)                             \

// 节点类型定义
typedef struct _node_t
{
    void *data;             // 数据域
    struct _node_t *next;   // 指针域
}node_t;

// 链表头信息结构体定义
typedef struct _slist_t
{
    node_t *p;              // 指向头节点的指针
    int size;               // 类型大小
    int count;              // 节点个数
    cb1_t my_destroy;       // 销毁节点函数
}slist_t;






#endif/*__SLIST_H__*/